package org.example.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "jobtransfer")
public class Jobtransfer {
    /**
     * 员工ID
     */
    @TableId(value = "employee_id", type = IdType.INPUT)
    private Integer employeeId;

    /**
     * 员工工号
     */
    @TableField(value = "employee_id_number")
    private String employeeIdNumber;

    /**
     * 姓名
     */
    @TableField(value = "employee_name")
    private String employeeName;

    /**
     * 聘用形式
     */
    @TableField(value = "employment_form")
    private String employmentForm;

    /**
     * 员工状态
     */
    @TableField(value = "employee_status")
    private String employeeStatus;

    /**
     * 入职日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "entry_date")
    private Date entryDate;

    /**
     * 经办HR
     */
    @TableField(value = "handler_hr")
    private String handlerHr;

    /**
     * 原岗位
     */
    @TableField(value = "original_position")
    private String originalPosition;

    /**
     * 原部门
     */
    @TableField(value = "original_department")
    private String originalDepartment;

    /**
     * 调出部门主管
     */
    @TableField(value = "out_supervisor")
    private String outSupervisor;

    /**
     * 调动原因
     */
    @TableField(value = "transfer_reason")
    private String transferReason;

    /**
     * 调入部门id
     */
    @TableField(value = "transfer_department")
    private Integer transferDepartment;

    /**
     * 调入岗位id
     */
    @TableField(value = "transfer_position")
    private Integer transferPosition;

    /**
     * 调动后薪资
     */
    @TableField(value = "new_salary")
    private String newSalary;

    /**
     * 调入部门主管
     */
    @TableField(value = "in_supervisor")
    private String inSupervisor;

    /**
     * 主管审批结果
     */
    @TableField(value = "supervisor_approval")
    private String supervisorApproval;

    /**
     * 调动完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "completion_time")
    private Date completionTime;

    /**
     * HR确认
     */
    @TableField(value = "hr_confirm")
    private String hrConfirm;

    /**
     * 申请日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "application_date")
    private Date applicationDate;

    /**
     * 提交人
     */
    @TableField(value = "submitter")
    private String submitter;

    /**
     * 提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "submit_time")
    private Date submitTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField(value = "update_time")
    private Date updateTime;

    @TableField(exist = false)
    private String transferDepartmentName;

    @TableField(exist = false)
    private String transferPositionName;

    public String getTransferDepartmentName() {
        return transferDepartmentName;
    }

    public void setTransferDepartmentName(String transferDepartmentName) {
        this.transferDepartmentName = transferDepartmentName;
    }

    public String getTransferPositionName() {
        return transferPositionName;
    }

    public void setTransferPositionName(String transferPositionName) {
        this.transferPositionName = transferPositionName;
    }
}